#ifndef INFINITY_PHYSICS_TEST_H
#	define INFINITY_PHYSICS_TEST_H

#include "gamemode.h"

#include "graphics/node.h"
#include "graphics/camera.h"
#include "graphics/renderer.h"

#include "inputs/command.h"

#include "maths/shape.h"

namespace infinity {

class PhysicsTests
:	public GameMode
{
public : //! @name Construction & Destruction
	//! @{
	PhysicsTests();
	~PhysicsTests();
	//! @}

public : //! @name Commands
	//! @{
	void install();
	void update(const dw::float32 deltaT);
	void render();
	void term();
	//! @}
	
private : //! @name Helpers
	//! @{
	//! @}

private : //! @name Types definitions
	//! @{
	typedef std::vector< dw::maths::Shape* > ShapesCollection;
	//! @}

private : //! @name Data
	//! @{
	dw::graphics::Renderer::State m_customState;

	dw::inputs::InputCommand m_trackMouse;

	Vector3f m_cameraPointer;

	ShapesCollection m_shapes;

	dw::maths::Shape::Type m_cursorShapeType;
	//! @}
};

} // namespace infinity

#endif // !INFINITY_PHYSICS_TEST_H
